package com.cea.papyrus.ocl.interpreter;

import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetWidgetFactory;

/**
 * Interface for composites that are placed in a PropertyViewSection
 */
public interface ISectionComposite {
	/**
	 * Creates the content of the Section.
	 * 
	 * @param factory the factory used to create the widgets for the section
	 * @param parent the parent of the composite for this section
	 * 
	 * @return the top level Composite of this section
	 */
	public Composite createContent(Composite parent, TabbedPropertySheetWidgetFactory factory);
	
	/**
	 * Refresh the contents of the controls displayed in this section.
	 */
	public void refresh();
	
	/**
	 * Dispose all or part of resources.
	 */
	public void dispose();
}
